home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 726-750 / 729 / bbbbs / bbbbs54.lzh / rexx / ChangeUserName.rexx < prev    next >
OS/2 REXX Batch file  |  1991-12-12  |  4KB  |  148 lines

  1. /*
  2.    $VER:  4.2  ChangeUserName.rexx  13 December 1991  (13.12.91)
  3.      copyright 1991 Richard Lee Stockton - FREELY DISTRIBUTABLE
  4. */
  5.  
  6. SIGNAL ON BREAK_C
  7. SIGNAL ON BREAK_E
  8. CR='0D'x
  9.  
  10. PARSE ARG OLD_NAME
  11. IF STRIP(OLD_NAME)='' THEN OLD_NAME=GETCLIP('BBS_oldname')
  12. ELSE CR=''
  13. IF STRIP(OLD_NAME)='' THEN
  14.   DO
  15.     SAY '  Usage:  rx  ChangeUserName  USER_NAME'
  16.     SAY 'Example:  rx  ChangeUserName  The Mad Hacker'
  17.     CALL BYE(10)
  18.   END
  19. OLD_NAME=TRANSLATE(STRIP(UPPER(OLD_NAME)),'_',' ')
  20. OLD_NAME=COMPRESS(OLD_NAME,'.')
  21.  
  22. bbspath=GETCLIP('BBS_path')
  23. IF bbspath='' THEN
  24.   DO
  25.     /* load config and parse OR */
  26.     CALL BYE(1);
  27.   END
  28.  
  29.  
  30. /* load first line of userfile */
  31. SAY OLD_NAME
  32. x=OPEN(f,bbspath'Users/'OLD_NAME,'R')
  33. IF x=0 THEN EXIT(2);
  34. fullname=READLN(f)
  35. CALL CLOSE(f);
  36.  
  37.  
  38. /* let operator enter new name */
  39.  
  40. SAY 'Full Name:' fullname||CR
  41. OPTIONS PROMPT 'User Name: '
  42. PULL NEW_NAME
  43. IF STRIP(NEW_NAME)='' THEN NEW_NAME=UPPER(fullname)
  44. NEW_NAME=TRANSLATE(STRIP(NEW_NAME),'_',' ')
  45. NEW_NAME=COMPRESS(NEW_NAME,'.')
  46. IF EXISTS(bbspath'Users/'NEW_NAME) THEN
  47.   DO
  48.     SAY NEW_NAME 'already exists!'CR
  49.     CALL BYE(3);
  50.   END
  51.  
  52. OPTIONS PROMPT 'Rename' OLD_NAME 'to' NEW_NAME '? (y/N) > '
  53. PULL temp
  54. IF UPPER(LEFT(temp,1))~='Y' THEN EXIT(0)
  55.  
  56.  
  57. /* rename */
  58.  
  59. SAY 'Renaming User files...'CR
  60. CALL RENAME(bbspath'Users/'OLD_NAME,bbspath'Users/'NEW_NAME)
  61. CALL RENAME(bbspath'Email/'OLD_NAME,bbspath'Email/'NEW_NAME)
  62. CALL RENAME(bbspath'EmailFiles/'OLD_NAME,bbspath'EmailFiles/'NEW_NAME)
  63.  
  64. OPTIONS PROMPT 'Re-Address Email FROM' OLD_NAME'? (y/N) > '
  65. PULL temp
  66. IF UPPER(LEFT(temp,1))='Y' THEN
  67.   DO
  68.     SAY 'Re-Addressing EMail...'CR
  69.     emailist=SHOWDIR(bbspath'Email','D')
  70.     DO i=1 TO WORDS(emailist)
  71.       user=WORD(emailist,i)
  72.       email=SHOWDIR(bbspath'Email/'user,'F')
  73.       DO j=1 TO WORDS(email)
  74.         mail=WORD(email,j)
  75.         IF POS(OLD_NAME,mail)>0 THEN
  76.           DO
  77.             x=OPEN(f,bbspath'EMail/'user'/'mail,'R')
  78.             IF x=0 THEN
  79.               DO
  80.                 SAY user'/'mail 'failed to open for reading!'CR
  81.                 ITERATE j
  82.               END
  83.             lynes.=''
  84.             DO k=1
  85.               line=READLN(f)
  86.               IF EOF(f) THEN LEAVE k
  87.               lynes.k=line
  88.             END
  89.             CALL CLOSE(f)
  90.             lynes.0=k-1
  91.             PARSE VAR lynes.2 ltemp junk rtemp
  92.             lynes.2=' 'ltemp NEW_NAME||rtemp
  93.             PARSE VAR mail junk'.'num
  94.             CALL DELETE(bbspath'EMail/'user'/'mail)
  95.             mail=NEW_NAME'.'num
  96.             x=OPEN(f,bbspath'EMail/'user'/'mail,'W')
  97.             IF x=0 THEN
  98.               DO
  99.                 SAY user'/'mail 'failed to open for writing!'CR
  100.                 ITERATE j
  101.               END
  102.             DO k=1 TO lynes.0
  103.               CALL WRITELN(f,lynes.k)
  104.             END
  105.             CALL CLOSE(f)
  106.           END
  107.       END
  108.     END
  109.   END
  110.  
  111. CALL DELETE(bbspath'Lists/Users')
  112. CALL SETCLIP('BBS_newname',NEW_NAME)
  113. IF GETCLIP('BBS_oldname')~='' THEN CALL SETCLIP('BBS_oldname')
  114. ELSE CALL SETCLIP('BBS_QUIT','QUIT')
  115. IF ARG()>0 THEN SAY 'Done!'
  116. CALL BYE(0);
  117.  
  118.  
  119.  
  120. /*********  THESE NEXT TWO ROUTINES NOT YET IMPLEMENTED!  *********/
  121.  
  122. /* search filenotes for OLD_NAME and replace with NEW_NAME */
  123.  
  124. OPTIONS PROMPT 'Search filenotes and replace' OLD_NAME 'with' NEW_NAME '? '
  125. PULL temp
  126. IF UPPER(LEFT(temp,1))='Y' THEN
  127.   DO
  128.   END
  129.  
  130. /* search message bases for OLD_NAME and replace with NEW_NAME */
  131.  
  132. OPTIONS PROMPT 'Search message bases and replace' OLD_NAME 'with' NEW_NAME '? '
  133. PULL temp
  134. IF UPPER(LEFT(temp,1))~='Y' THEN EXIT(0);
  135.  
  136.  
  137. BYE:
  138. ARG byearg
  139. EXIT(byearg);
  140.  
  141.  
  142. BREAK_C:
  143. BREAK_E:
  144. SAY '*** CTRL BREAK'CR
  145. EXIT(5);
  146.  
  147. /* end of ChangeUserName.rexx */
  148.